package com.simple.business.service.utilService;



import com.simple.llm.domain.dto.LLMMessageDTO;
import com.simple.llm.domain.vo.LLMResponseVO;

import java.util.LinkedList;
import java.util.List;

public interface LLMService {
    default LLMResponseVO chat(String str, Float temperature, Float topP, String desc, Long userId){
        List<LLMMessageDTO> dtoList = new LinkedList<>();
        dtoList.add(LLMMessageDTO.userMsg(str));
        return chat(dtoList,temperature,topP,desc,userId,null);
    }

    default LLMResponseVO chat(LLMMessageDTO dto,Float temperature,Float topP,String desc,Long userId){
        List<LLMMessageDTO> dtoList = new LinkedList<>();
        dtoList.add(dto);
        return chat(dtoList,temperature,topP,desc,userId,null);
    }

    /**
     * 普通对话
     */
    LLMResponseVO chat(List<LLMMessageDTO> list, Float temperature, Float topP, String desc, Long userId, String llmName);

    default LLMResponseVO chat(List<LLMMessageDTO> list, Float temperature, Float topP, String desc, Long userId) {
        return chat(list, temperature, topP,desc,userId,null);
    }

    default LLMResponseVO chat(List<LLMMessageDTO> dto,String desc,Long userId, String llmName) {
        return chat(dto, 0.8f, 0.8f,desc,userId,llmName);
    }

    default LLMResponseVO chat(List<LLMMessageDTO> dto,String desc,Long userId) {
        return chat(dto, 0.8f, 0.8f,desc,userId,null);
    }
}
